/***************************************************************************/
/* Procedimiento:  SolMultiple_ AlmacenInsertar
/* Descripcion:   Insertar o Modifica una fila en la tabla ediv2.SolMultiple_ Almacen
/* Parametros:    ?InfoParametros
/*                pTransaccion. Numero identificador de la Transaccion
/*                pMensaje. Mensaje de comfirmacion o excepcion
/* Comentarios:         
/****************************************************************************/

PROCEDURE  SolMultiple_ AlmacenInsertarModificar(pptda_alm NUMBER, ptipo_mov VARCHAR2, 
						pcve_concepto VARCHAR2, pcantidad NUMBER, ppeso NUMBER, 
						pmuelle NUMBER, palmacen NUMBER, parea VARCHAR2, 
						pmaniobrista NUMBER, pnumero_mov NUMBER, pprocesado VARCHAR2, 
						pubicacion VARCHAR2, pcircuitos NUMBER, pnumtarja VARCHAR2, 
						pfechaprogramainicalt VARCHAR2, pfechaprogramafincalt VARCHAR2, pfolioprogramacioncalt VARCHAR2, 
						, pTransaccion OUT NUMBER, pMensaje OUT VARCHAR2)
AS
vExisteRegistro NUMBER(1);
BEGIN
  SELECT count(*)
  INTO   vExisteRegistro
  FROM   ediv2.SolMultiple_ Almacen
  WHERE  nidDocumento=pNidDocumento;
  
  IF vExisteRegistro=0 THEN
    INSERT INTO ediv2.SolMultiple_ Almacen
	           (nidsolmultiple, ptda_alm, tipo_mov, 
						cve_concepto, cantidad, peso, 
						muelle, almacen, area, 
						maniobrista, numero_mov, procesado, 
						ubicacion, circuitos, numtarja, 
						fechaprogramainicalt, fechaprogramafincalt, folioprogramacioncalt, 
						)
    VALUES     (seq_SolMultiple_ Almacen.nextval, pptda_alm, ptipo_mov, 
						pcve_concepto, pcantidad, ppeso, 
						pmuelle, palmacen, parea, 
						pmaniobrista, pnumero_mov, pprocesado, 
						pubicacion, pcircuitos, pnumtarja, 
						to_date(pfechaprogramainicalt,'DD/MM/YYYY HH24:MI:SS'), to_date(pfechaprogramafincalt,'DD/MM/YYYY HH24:MI:SS'), pfolioprogramacioncalt, 
						);
  ELSE
    UPDATE ediv2.SolMultiple_ Almacen
    SET    ptda_alm=pptda_alm, tipo_mov=ptipo_mov, 
		cve_concepto=pcve_concepto, cantidad=pcantidad, peso=ppeso, 
		muelle=pmuelle, almacen=palmacen, area=parea, 
		maniobrista=pmaniobrista, numero_mov=pnumero_mov, procesado=pprocesado, 
		ubicacion=pubicacion, circuitos=pcircuitos, numtarja=pnumtarja, 
		fechaprogramainicalt=to_date(pfechaprogramainicalt,'DD/MM/YYYY HH24:MI:SS'), fechaprogramafincalt=to_date(pfechaprogramafincalt,'DD/MM/YYYY HH24:MI:SS'), folioprogramacioncalt=pfolioprogramacioncalt
    WHERE  nidDocumento=pNidDocumento;
  END IF;
  
  COMMIT;
  pTransaccion := 1;
  pMensaje := 'Terminado OK';
  dbms_output.put_line('Terminado OK');

EXCEPTION
  WHEN OTHERS THEN
    pTransaccion := 0;
    pMensaje := 'Error en  SolMultiple_ Almacen_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm;
    dbms_output.put_line('Error en  SolMultiple_ Almacen_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm);
END;
